package binary_tree

import (
	"container/list"
	"fmt"
)

func LevelTraversal(node *TreeNode) {
	if node == nil {
		return
	}
	queue := list.New()
	// 头节点进入队列
	queue.PushFront(node)
	for queue.Len() != 0 {  // 队列为空时遍历完毕退出
		n := queue.Remove(queue.Back()).(*TreeNode)
		fmt.Println(n.Value)
		if n.Left != nil {  // 左节点不为空，则左节点进入队列
			queue.PushFront(n.Left)
		}
		if n.Right != nil { // 右节点不为空，则右节点进入队列
			queue.PushFront(n.Right)
		}
	}
}
